package com.fc2.blog96.nonbirimuchiki.SlideShowClient;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.TextView;

public class SlideShowClientActivity extends Activity {
    /** Called when the activity is first created. */

	//private BluetoothManager mBtManager;
	private ImageNetworkThread mImageNetworkThread;
    ImageView image;
    Thread ImageThread;
    private Handler handler = new Handler();
    private Runnable runnable;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
/*
        TextView tex = (TextView)findViewById(R.id.text_view);
        tex.setText(BluetoothManager.btDevice.getName()+"  "+BluetoothManager.btDevice.getAddress());
*/
        image = (ImageView)findViewById(R.id.image_view);
        mImageNetworkThread = new ImageNetworkThread(this);
        ImageThread = new Thread(mImageNetworkThread);
        ImageThread.start();
        runnable = new Runnable() {
            @Override
            public void run() {
            	image.setImageBitmap(mImageNetworkThread.getImageViewBitmap());
                handler.postDelayed(this, common.IMAGE_FLUSH_TIME);
            }
        };

        //1.初回実行
        handler.postDelayed(runnable, common.IMAGE_FLUSH_TIME);
    }

 // オプションメニューが最初に呼び出される時に1度だけ呼び出されます
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // メニューアイテムを追加します
        menu.add(Menu.NONE, common.MENU_BLUETOOTH_SETTING_VALUE,
        		Menu.NONE, common.MENU_BLUETOOTH_SETTING).setIcon(android.R.drawable.ic_menu_manage);
        menu.add(Menu.NONE, common.MENU_EXIT_VALUE,
        		Menu.NONE, common.Menu_EXIT).setIcon(android.R.drawable.ic_menu_close_clear_cancel);
        return super.onCreateOptionsMenu(menu);
    }

    // オプションメニューアイテムが選択された時に呼び出されます
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        boolean ret = true;
        switch (item.getItemId()) {
        default:
            ret = super.onOptionsItemSelected(item);
            break;
        case common.MENU_BLUETOOTH_SETTING_VALUE:
        	Intent intent = new Intent(getApplicationContext(), BluetoothSettingActivity.class);
    		startActivity(intent);
            ret = true;
            break;
        case common.MENU_EXIT_VALUE:
        	finish();
        }
        return ret;
    }

    @Override
    protected void onDestroy()
    {
    	super.onDestroy();
    	mImageNetworkThread.cancelBluetooth();
    	try {
			ImageThread.join();
		} catch (InterruptedException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}
    }

    public void showErrorDialog(String title,String message,String str,int activemode)
    {
    	AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
        // アラートダイアログのタイトルを設定します
        alertDialogBuilder.setTitle(title);
        // アラートダイアログのメッセージを設定します
        alertDialogBuilder.setMessage(message);
        // アラートダイアログの肯定ボタンがクリックされた時に呼び出されるコールバックリスナーを登録します
        switch(activemode)
        {
        default:
            alertDialogBuilder.setPositiveButton(str,
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                        }
                    });
            break;
        case common.AlertDialogMode.ALERT_DIALOG_MODE_FINISH:
            alertDialogBuilder.setPositiveButton(str,
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                        }
                    });
            break;
        }

        // アラートダイアログのキャンセルが可能かどうかを設定します
        alertDialogBuilder.setCancelable(true);
        AlertDialog alertDialog = alertDialogBuilder.create();
        // アラートダイアログを表示します
        alertDialog.show();
    }
}